معماری برنامه های مبتنی بر داده
معماری برنامه های مبتنی بر داده
معماری برنامه های مبتنی بر داده
داده ها در برنامه های کامپيوتری دارای نقشی بسيار مهم بوده و همواره نحوه ذخيره و بازيابی آنان از مهمترين مباحث در دنيای گسترده نرم افزار بوده و خواهد بود. فراموش نکنيم که هدف از ذخيره سازی داده ها، بازيابی آنان در زمان مناسب و با سرعت مطلوب است .روش های ذخيره سازی داده ها در بستر زمان، دچار تغيير و تحولات گسترده ای شده و با ظهور پديده اينترنت و ضرورت طراحی و پياده سازی نرم افزار بر روی بستر فوق وارد مرحله جديدی شده است. در اين مقاله به بررسی معماری برنامه های کامپيوتری با محوريت داده پرداخته و گزينه های ذخيره سازی داده ها بررسی می گردد .
برای ذخيره سازی داده ها از روش های متعددی استفاده می گردد :
• غير ساختيافته . در اين روش، داده ها دارای هيچگونه ساختاری نمی باشند ( نظير Memo های ساده )
• ساختيافته - غير رابطه ای . داده ها بصورت واحدهای مجزاء قرار می گيرند. سازماندهی واحدها عموما" با توجه به اولويت استقرار آنها تعيين می گردد . فايل های CSV)Comma Separated value) و يا فايل هائی که محتويات آنان توسط Tab از يکديگر جدا می شوند، فايل های صفحات گسترده نظير Excel ، فايل های سرويس دهنده Exchange ، فايل های Active Directory ، فايل های ISAM(Indexd sequential access method )، نمونه هائی در اين زمينه می باشند .
• سلسله مراتبی . در اين روش، داده ها بصورت يک ساختار درختی سازماندهی می گردند. هر درخت دارای مجموعه ای از گره بوده که هر گره خود می تواند شامل چندين گره ديگر باشد .سندهای داده XML ، نمونه ای از اين مورد است .
• بانک های اطلاعاتی رابطه ای . در روش فوق، داده ها در جداولی سازماندهی می گردند . ستون ها در جدول شامل يک نوع خاص داده بوده و سطرها شامل رکورد خاصی از اطلاعات می باشند . جداول می توانند از طريق ستون های خاصی بيکديگر مرتبط تا امکان استفاده از داده های مشترک ( يکسان ) بين آنها فراهم گردد. سرويس دهنده SQL ، بانک اطلاعاتی Access و بانک اطلاعاتی Oracle نمونه هائی در اين زمينه می باشد .
• بانک اطلاعاتی شی گراء . در اين روش، داده ها بصورت مجموعه ای از اشياء سازماندهی می شوند . نظير Objectivity/DB
• يک محيط ايمن که پشتيبانی آن ساده تر خواهد بود .
• کنترل همزمانی بسادگی انجام خواهد شد .
• داده ها نسبت به ساير روش ها ی موجود، بهنگام تر می باشند .
• توسعه سيستم، دارای چالش های خاص خود است .
مثال :
• کارخانه ای که نيازمند يک اتصال دائم و هميشگی با سرويس دهنده مربوطه بمنظور مديريت و آگاهی از آخرين وضعيت محصولات ورودی و خروجی به انبار مربوطه است.
• يک بنگاه تجاری که نيازمند يک اتصال دائم بمنظور آگاهی از آخرين وضعيت اطلاعاتی در رابطه با تعداد و قيمت سهام است .
• ساير کاربران می توانند از ارتباط استفاده نمايند .( بهينه سازی اتصالات همزمان به يک منبع داده )
• بهبود در کارآئی و توسعه برنامه
• تغييرات اعمال شده می تواند باعث بروز تناقص اطلاعاتی شده و می بايست اقدامات لازم در اين خصوص ، پيش بينی گردد .
مثال :
• در يک سيستم مالياتی ، ضرائب مالياتی ممکن است طی يک سال و يا حتی چندين سا ل يک مرتبه تغيير نمايند ، بنابراين اصلاح جداول در بانک اطلاعاتی مربوطه ، می تواند بصورت غيرمتصل و در زمان مورد نياز انجام پذيرد.
تعريف Tire : در يک مدل دستيابی به داده ، Tire ( رديف - طبقه ) ، يک سطح منطقی و يا لايه ای است که عناصر منطقی مربوط به يک برنامه بر روی آن مستقر می گردند( نه يک tire فيزيکی). . طبقات ( لايه ها ) ، می تواند بر روی يک و يا چندين کامپيوتر و يا حتی Tire فيزيکی، مستقر گردند . تعداد Tire ها به تعداد سطوح بر می گردد( نه تعداد کامپيوترهای فيزيکی که سرويس ها را تقسيم نموده اند) . اين سطوح عموما" دارای موارد زير است :
• Client-tire . لايه فوق ، با نام Presentation و يا User Service نيز ناميده شده و شامل بخش رابط کاربر است .
• Bussiness Logic Tire . شامل منطقی است که با منابع داده مرتبط می گردد . اين Tire ميانی (Middle) ، شامل بخشی از برنامه است که با داده ها مرتبط می گردد ( مثلا" ايجاد يک ارتباط با منبع داده). لايه فوق، اغلب بصورت فيزيکی و در تمام لايه ها پياده سازی می گردد . مثلا" بعنوان يک Stored Procedure در کنار منبع داده، يک کلاس همراه يک سرويس دهنده برنامه و يا حتی کدهای همراه برنامه سرويس گيرنده .
• Data Service Tire . لايه فوق ، شامل داده هائی است که Bussiness Logic از آنان در برنامه ها استفاده می نمايد .
• Interoperability . شامل منطقی است که امکان ارتباط بين برنامه های متعدد بر روی سيستم های عامل متفاوت و يا انواع متفاوت داده ها را فراهم می نمايد. مثلا" سرويس های وب XML می توانند توسط هر نوع سيستم عامل، ميزبان و استفاده گردند .
• One -Tire . مدل فوق، عموما" شامل يک کاربر بوده و تمامی سه لايه در يک کامپيوتر مستقر ( لايه بندی ) می شوند . مثلا" يک بانک اطلاعاتی شامل يک کاربر
مزايا : چون هر چيز در يک محل قرار می گيرد تمام عناصر بسادگی قابل دستيابی خواهند بود.
معايب : بهنگام سازی برنامه ها مستلزم کدهای اوليه برنامه بوده و پس از اعمال تغييرات و ترجمه مجدد ، می بايست برنامه برای هر يک از کاربران ارسال مجدد گردد. در اين مدل قابليت واقعی برای گسترش وجود ندارد .
• Two-Tire . لايه User و Business Logic در يک Tire قرار گرفته و Data Service در لايه دوم قرار خواهد گرفت . مدل فوق، عموما" شامل دو و يا بيش از دو کامپيوتر است . مثلا" يک بانک اطلاعاتی که Businesses Logic بين دو Tire تقسيم می گردد . بخشی از منطق در برنامه سرويس گيرنده و بخشی ديگر بعنوان Stored procedure در Data Tire ذخيره می گردد.
مزايا : برخی از جداسازی ها را ارائه می نمايد .
معايب : توسعه مشکل خواهد بود، چراکه سرويس گيرندگان بصورت يک Fat Client مطرح و شامل لايه های Presentation و Business Logic می باشند. توزيع و پشتبانی نرم افزار يکی ديگر از مشکلات موجود در اين مدل است .
• Three-Tire . هر سرويس در يک لايه مجزا قرار می گيرد. Bussiness Logic در يک Middle Tire جديد مستقر می گردد.
مزايا : نوع مطلوبی از جدا سازی را ايجاد نموده و حجم سرويس گيرنده نازک( لاغر!) می شود . در اين مدل سرويس گيرنده بصورت thin client بوده که صرفا" شامل منطق و يا لايه Presentation است.
معايب : مديريت آن بمراتب پيچيده تر بوده و از لحاظ امنيتی انعطاف و توسعه پذيری مدل N - Tier را ندارد .
• N - Tire . يک بانک اطلاعاتی گسترده که دارای سرويس گيرندگان متعدد از طريق يک سرويس دهنده برنامه می باشد . Tier های جديد می تواند با توجه به ضرورت های منطقی مورد نياز، اضافه گردد .
مزايا : امکان اجرای برنامه های متعدد بر روی سيستم های عامل گوناگون بمنظور ارتباط با کاربر و داده فراهم می گردد .
معايب : مسايل مربوط به امنيت دارای چالش های خاص خود است . RPC)Remote Procedure Call) نمی تواند از طريق فايروال ها ،عبور داده شوند .
• N-Tire with web Interface . سرويس ها بين اينترنت و اينترانت از طريق Tier اضافه سرويس دهندگان اختصاصی اضافه در شبکه، توزيع می گردد .
مزايا : هزينه بکارگيری نرم افزار بر روی سرويس گيرنده بسمت صفر ميل می کند . بهنگام سازی صرفا" بر روی سرويس دهندگان WEB و Application انجام خواهد شد . پروتکل HTTP امکان عبور از طريق فايروال را خواهند داشت .
معايب : دارای چالش های امنيتی خاص خود است .
در پايان لازم است به اين نکته اشاره گردد که با افزايش Tier ها ، از يکطرف امکان گسترش برنامه بيشتر شده و از طرف ديگر، پيچيدگی مدل دستيابی به داده ها ، افزايش می يابد.
ذخيره سازی داده
برای ذخيره سازی داده ها از روش های متعددی استفاده می گردد :
• غير ساختيافته . در اين روش، داده ها دارای هيچگونه ساختاری نمی باشند ( نظير Memo های ساده )
• ساختيافته - غير رابطه ای . داده ها بصورت واحدهای مجزاء قرار می گيرند. سازماندهی واحدها عموما" با توجه به اولويت استقرار آنها تعيين می گردد . فايل های CSV)Comma Separated value) و يا فايل هائی که محتويات آنان توسط Tab از يکديگر جدا می شوند، فايل های صفحات گسترده نظير Excel ، فايل های سرويس دهنده Exchange ، فايل های Active Directory ، فايل های ISAM(Indexd sequential access method )، نمونه هائی در اين زمينه می باشند .
• سلسله مراتبی . در اين روش، داده ها بصورت يک ساختار درختی سازماندهی می گردند. هر درخت دارای مجموعه ای از گره بوده که هر گره خود می تواند شامل چندين گره ديگر باشد .سندهای داده XML ، نمونه ای از اين مورد است .
• بانک های اطلاعاتی رابطه ای . در روش فوق، داده ها در جداولی سازماندهی می گردند . ستون ها در جدول شامل يک نوع خاص داده بوده و سطرها شامل رکورد خاصی از اطلاعات می باشند . جداول می توانند از طريق ستون های خاصی بيکديگر مرتبط تا امکان استفاده از داده های مشترک ( يکسان ) بين آنها فراهم گردد. سرويس دهنده SQL ، بانک اطلاعاتی Access و بانک اطلاعاتی Oracle نمونه هائی در اين زمينه می باشد .
• بانک اطلاعاتی شی گراء . در اين روش، داده ها بصورت مجموعه ای از اشياء سازماندهی می شوند . نظير Objectivity/DB
محيط های متصل (Connected)
• يک محيط ايمن که پشتيبانی آن ساده تر خواهد بود .
• کنترل همزمانی بسادگی انجام خواهد شد .
• داده ها نسبت به ساير روش ها ی موجود، بهنگام تر می باشند .
معايب :
• توسعه سيستم، دارای چالش های خاص خود است .
مثال :
• کارخانه ای که نيازمند يک اتصال دائم و هميشگی با سرويس دهنده مربوطه بمنظور مديريت و آگاهی از آخرين وضعيت محصولات ورودی و خروجی به انبار مربوطه است.
• يک بنگاه تجاری که نيازمند يک اتصال دائم بمنظور آگاهی از آخرين وضعيت اطلاعاتی در رابطه با تعداد و قيمت سهام است .
محيط های غيرمتصل (Disconnected )
مزايا :
• ساير کاربران می توانند از ارتباط استفاده نمايند .( بهينه سازی اتصالات همزمان به يک منبع داده )
• بهبود در کارآئی و توسعه برنامه
معايب :
• تغييرات اعمال شده می تواند باعث بروز تناقص اطلاعاتی شده و می بايست اقدامات لازم در اين خصوص ، پيش بينی گردد .
مثال :
• در يک سيستم مالياتی ، ضرائب مالياتی ممکن است طی يک سال و يا حتی چندين سا ل يک مرتبه تغيير نمايند ، بنابراين اصلاح جداول در بانک اطلاعاتی مربوطه ، می تواند بصورت غيرمتصل و در زمان مورد نياز انجام پذيرد.
مدل های متفاوت برنامه ها برای دستيابی به داده ها
تعريف Tire : در يک مدل دستيابی به داده ، Tire ( رديف - طبقه ) ، يک سطح منطقی و يا لايه ای است که عناصر منطقی مربوط به يک برنامه بر روی آن مستقر می گردند( نه يک tire فيزيکی). . طبقات ( لايه ها ) ، می تواند بر روی يک و يا چندين کامپيوتر و يا حتی Tire فيزيکی، مستقر گردند . تعداد Tire ها به تعداد سطوح بر می گردد( نه تعداد کامپيوترهای فيزيکی که سرويس ها را تقسيم نموده اند) . اين سطوح عموما" دارای موارد زير است :
• Client-tire . لايه فوق ، با نام Presentation و يا User Service نيز ناميده شده و شامل بخش رابط کاربر است .
• Bussiness Logic Tire . شامل منطقی است که با منابع داده مرتبط می گردد . اين Tire ميانی (Middle) ، شامل بخشی از برنامه است که با داده ها مرتبط می گردد ( مثلا" ايجاد يک ارتباط با منبع داده). لايه فوق، اغلب بصورت فيزيکی و در تمام لايه ها پياده سازی می گردد . مثلا" بعنوان يک Stored Procedure در کنار منبع داده، يک کلاس همراه يک سرويس دهنده برنامه و يا حتی کدهای همراه برنامه سرويس گيرنده .
• Data Service Tire . لايه فوق ، شامل داده هائی است که Bussiness Logic از آنان در برنامه ها استفاده می نمايد .
• Interoperability . شامل منطقی است که امکان ارتباط بين برنامه های متعدد بر روی سيستم های عامل متفاوت و يا انواع متفاوت داده ها را فراهم می نمايد. مثلا" سرويس های وب XML می توانند توسط هر نوع سيستم عامل، ميزبان و استفاده گردند .
مزايای Tires
تکامل مدل های دستيابی
• One -Tire . مدل فوق، عموما" شامل يک کاربر بوده و تمامی سه لايه در يک کامپيوتر مستقر ( لايه بندی ) می شوند . مثلا" يک بانک اطلاعاتی شامل يک کاربر
مزايا : چون هر چيز در يک محل قرار می گيرد تمام عناصر بسادگی قابل دستيابی خواهند بود.
معايب : بهنگام سازی برنامه ها مستلزم کدهای اوليه برنامه بوده و پس از اعمال تغييرات و ترجمه مجدد ، می بايست برنامه برای هر يک از کاربران ارسال مجدد گردد. در اين مدل قابليت واقعی برای گسترش وجود ندارد .
• Two-Tire . لايه User و Business Logic در يک Tire قرار گرفته و Data Service در لايه دوم قرار خواهد گرفت . مدل فوق، عموما" شامل دو و يا بيش از دو کامپيوتر است . مثلا" يک بانک اطلاعاتی که Businesses Logic بين دو Tire تقسيم می گردد . بخشی از منطق در برنامه سرويس گيرنده و بخشی ديگر بعنوان Stored procedure در Data Tire ذخيره می گردد.
مزايا : برخی از جداسازی ها را ارائه می نمايد .
معايب : توسعه مشکل خواهد بود، چراکه سرويس گيرندگان بصورت يک Fat Client مطرح و شامل لايه های Presentation و Business Logic می باشند. توزيع و پشتبانی نرم افزار يکی ديگر از مشکلات موجود در اين مدل است .
• Three-Tire . هر سرويس در يک لايه مجزا قرار می گيرد. Bussiness Logic در يک Middle Tire جديد مستقر می گردد.
مزايا : نوع مطلوبی از جدا سازی را ايجاد نموده و حجم سرويس گيرنده نازک( لاغر!) می شود . در اين مدل سرويس گيرنده بصورت thin client بوده که صرفا" شامل منطق و يا لايه Presentation است.
معايب : مديريت آن بمراتب پيچيده تر بوده و از لحاظ امنيتی انعطاف و توسعه پذيری مدل N - Tier را ندارد .
• N - Tire . يک بانک اطلاعاتی گسترده که دارای سرويس گيرندگان متعدد از طريق يک سرويس دهنده برنامه می باشد . Tier های جديد می تواند با توجه به ضرورت های منطقی مورد نياز، اضافه گردد .
مزايا : امکان اجرای برنامه های متعدد بر روی سيستم های عامل گوناگون بمنظور ارتباط با کاربر و داده فراهم می گردد .
معايب : مسايل مربوط به امنيت دارای چالش های خاص خود است . RPC)Remote Procedure Call) نمی تواند از طريق فايروال ها ،عبور داده شوند .
• N-Tire with web Interface . سرويس ها بين اينترنت و اينترانت از طريق Tier اضافه سرويس دهندگان اختصاصی اضافه در شبکه، توزيع می گردد .
مزايا : هزينه بکارگيری نرم افزار بر روی سرويس گيرنده بسمت صفر ميل می کند . بهنگام سازی صرفا" بر روی سرويس دهندگان WEB و Application انجام خواهد شد . پروتکل HTTP امکان عبور از طريق فايروال را خواهند داشت .
معايب : دارای چالش های امنيتی خاص خود است .
در پايان لازم است به اين نکته اشاره گردد که با افزايش Tier ها ، از يکطرف امکان گسترش برنامه بيشتر شده و از طرف ديگر، پيچيدگی مدل دستيابی به داده ها ، افزايش می يابد.
مقالات مرتبط
تازه های مقالات
ارسال نظر
در ارسال نظر شما خطایی رخ داده است
کاربر گرامی، ضمن تشکر از شما نظر شما با موفقیت ثبت گردید. و پس از تائید در فهرست نظرات نمایش داده می شود
نام :
ایمیل :
نظرات کاربران
{{Fullname}} {{Creationdate}}
{{Body}}